package FileAndRecurison.File;
/*
创建删除功能的方法

        public boolean createNewFile()：当且仅当具有该名称的文件尚不存在时，创建一个新的空文件。
        public boolean delete() ：删除由此File表示的文件或目录。
        public boolean mkdir() ：创建由此File表示的目录。
        public boolean mkdirs() ：创建由此File表示的目录，包括任何必需但不存在的父目录。
*/


import java.io.File;
import java.io.IOException;

public class FileTest05 {
    public static void main(String[] args) throws IOException {
        show01();
        System.out.println("--------------------------");
        show02();
        System.out.println("--------------------------");
        show03();
    }

    private static void show03() {
        // public boolean delete() ：删除由此File表示的文件或目录。
        //此方法可以删除构造方法中给出的文件或者文件夹
        //返回值：
        //             true：当文件/文件夹删除成功时
        //             false：文件夹中存在文件/文件夹时，或者给出的路径存在问题时
        //delete直接删除硬盘上的文件

        File file1=new File("/Users/ivy/Documents/java/a.txt");
        boolean delete1 = file1.delete();
        System.out.println(delete1);
        File file2=new File("/Users/ivy/Documents/java/dir1");
        boolean delete2 = file2.delete();
        System.out.println(delete2);
    }

    private static void show02() {
        // public boolean mkdir() ：创建由此File表示的目录。
        //mkdir此方法只能创建单级文件夹
        //public boolean mkdirs() ：创建由此File表示的目录，包括任何必需但不存在的父目录。
        //mkdirs可以创建多级文件夹
        //返回值：
        //             true：当文件夹不存在，创建文件夹成功时
        //             false：文件夹存在，不会创建文件夹
        //构造方法中给出的路径不存在也返回false
        //此方法只能创建文件夹，不能创建文件
        File file1=new File("/Users/ivy/Documents/java/dir1");
        boolean mkdir1 = file1.mkdir();
        System.out.println(mkdir1);

        //mkdir此方法只能创建单级文件夹,返回false
        File file2=new File("/Users/ivy/Documents/java/dir1/dir2/dir3");
        boolean mkdir2 = file2.mkdir();
        System.out.println(mkdir2);

        //使用mkdirs可以创建多级文件夹
        File file3=new File("/Users/ivy/Documents/java/dir2/dir3/dir4");
        boolean mkdir3 = file3.mkdirs();
        System.out.println(mkdir3);
        //mkdir/mkdirs只能创建文件夹，不能创建文件

        //当路径错误时，不能创建文件夹，但不会抛出io异常
        File file4=new File("/U3213/ivy/Do/java/dir2/dir3/dir4");
        boolean mkdir4 = file4.mkdirs();
        System.out.println(mkdir4);

    }

    private static void show01() throws IOException {
/*
        public boolean createNewFile()：当且仅当具有该名称的文件尚不存在时，创建一个新的空文件。
        创建文件的路径和名称在构造方法中给出
        返回值：
            true：当文件不存在，创建文件成功时
            false：文件存在，不会创建文件
        注意：
            1、此方法只能创建文件，不能创建文件夹
            2、创建文件的路径必须存在，否则抛出异常

       public boolean createNewFile() throws IOException
       抛出了io异常，调用这个方法，必须处理这个异常，（throws/try/catch）
*/

        //使用绝对路径
        File file1 = new File("/Users/ivy/Documents/java/a.txt");
        boolean newFile1 = file1.createNewFile();
        System.out.println(newFile1);

        //使用相对路径
        File file2 = new File("b.txt");
        boolean newFile2 = file2.createNewFile();
        System.out.println(newFile2);

        //此方法不能创建文件夹，创建的为文件
        File file3 = new File("新建文件夹");
        boolean newFile3 = file3.createNewFile();
        System.out.println(newFile3);

        //当路径错误时，不能创建文件，抛出io异常
        //java.io.IOException: No such file or directory
        // File file4 = new File("/Users/ivy/Docu/java/a.txt");
        // boolean newFile4 = file4.createNewFile();
        // System.out.println(newFile4);


    }

}
